Приложение. Устаревшие функции для работы с BLOB-данными

Примечание

Приведенные ниже функции для работы с BLOB-данными являются устаревшими и не рекомендуются для использования в новых клиентских приложениях.

QtLinter-драйвер поддерживает два способа работы с BLOB-данными:

  1. с помощью стандартных средств QSql-интерфейса;

  2. с помощью специальных функций QtLinter-драйвера.

В первом способе работа с BLOB-данными выполняется так же, как и с данными любого другого типа:

  • выборка – с помощью SELECT-запроса;

  • извлечение – с помощью функции QSqlQuery::data();

  • добавление – с помощью претранслированного INSERT-запроса и привязкой в качестве параметра значения типа QVariant::ByteArray.

Единственный недостаток первого способа – необходимость достаточного количества оперативной памяти для размещения BLOB-значения целиком.

Во втором способе для работы с BLOB-данными используются специальные функции, встроенные в QtLinter-драйвер. Последовательность работы в этом случае должна быть следующей:

  • создание экземпляра класса QSqlQuery;

  • выполнение SELECT-запроса;

  • переход с помощью функции fetch() на строку выборки, содержащую нужные BLOB-данные;

  • c помощью этого же экземпляра класса выполнение функции prepare() для BLOB-функции QtLinter-драйвера;

  • привязка необходимых параметров (с помощью функции bind()).

Оперативная память при этом расходуется более экономно.